package war.redes;

import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.PrintWriter;
import java.net.Socket;
import java.util.List;
import java.util.Scanner;

	
public class ClienteTeste {
	
	private JogadorRede jogadorRede;
	private int valorRecebidoServidor;
	private int valorEnviadoCliente;
	private PrintWriter escritor;
	private List<PrintWriter> escritores;
	DataInputStream recebe;
	DataOutputStream envia;
	Scanner leitor;
	Socket client;
	public static int x, y;
	
	
	public ClienteTeste() throws IOException{
		iniciar();
		
		jogadorRede = new JogadorRede(".\\images\\jogador\\nave.png");
		jogadorRede.setNumEspecial(5);
		jogadorRede.setX(980);

	}
	private void iniciar() throws IOException{
		configuraRede();
		
	}
	public  void encaminharParaTodos(String texto){
		for (PrintWriter w : escritores) {
			try{
				w.println(texto);
				w.flush();
			}catch(Exception e){
				
			}
		}
	}
	public void enviarCoordendasParaServidor(int x, int y){
		try {
			envia.writeChar(y);
			envia.writeChar(x);
		} catch (IOException e) {
			e.printStackTrace();
		}
		
	}
	public JogadorRede getJogadorRede() {
		return jogadorRede;
	}

	public void setJogadorRede(JogadorRede jogadorRede) {
		this.jogadorRede = jogadorRede;
	}
	private void configuraRede(){
		try	{
			client = new Socket("127.0.0.1", 4000);
			escritor = new PrintWriter(client.getOutputStream());
			leitor = new Scanner(client.getInputStream());
			envia = new DataOutputStream(client.getOutputStream());
			recebe = new DataInputStream(client.getInputStream());
			new Thread(new EscutaServidor()).start();
		} 
		catch(Exception e){		
		}
	}
	public int getValorRecebidoServidor() {
		return valorRecebidoServidor;
	}
	
	
	public void setValorRecebidoServidor(int valorRecebidoServidor) {
		this.valorRecebidoServidor = valorRecebidoServidor;
	}
	
	public int getX() {
		return x;
	}
	public void setX(int x) {
		this.x = x;
	}
	public int getY() {
		return y;
	}
	public void setY(int y) {
		this.y = y;
	}

	private class EscutaServidor implements Runnable{
		@Override
		public void run() {
				String texto;
				try{
				while((texto = leitor.nextLine()) != null ){
					System.out.println(texto);
					encaminharParaTodos(texto);
				}
				}catch(Exception x){}
		}
	}
}